package com.example.hadoop;

import java.io.IOException;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;

/**
 * 
 * HDFS服务器
 * 
 * 
 * 
 * @author hjn
 * 
 * @version 1.0 2013-11-20
 */

public class HDFSServer {

	private static Configuration configuration;

	private static FileSystem fileSystem;

	private static final String HDFS_URL = "hdfs://121.40.249.242:9000";

	/**
	 * 
	 * HDFS服务器读取初始化
	 */

	private static void init() {

		try {

			//读取classpath下的xxx-site.xml 配置文件，并解析其内容，封装到conf对象中
			configuration = new Configuration();
			
//			configuration.addResource("classpath:/hadoop/core-site.xml");
//			configuration.addResource("classpath:/hadoop/hdfs-site.xml");
//			configuration.addResource("classpath:/hadoop/mapred-site.xml");
//			configuration.addResource("classpath:/hadoop/yarn-site.xml");
			
			//也可以在代码中对conf中的配置信息进行手动设置，会覆盖掉配置文件中的读取的值
//			configuration.set("fs.defaultFS", HDFS_URL);

			//根据配置信息，去获取一个具体文件系统的客户端操作实例对象
			fileSystem = FileSystem.get(URI.create(HDFS_URL), configuration);
			
		} catch (IOException e) {

			System.out.println("读取服务器失败");

			e.printStackTrace();

		}

	}

	public static FileSystem getFileSystem() {

		if (fileSystem == null) {

			init();

		}

		return fileSystem;

	}

}